<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>设备管理</title>
    <meta name="renderer" content="webkit">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
    <link rel="stylesheet" href="../lib/layui-v2.6.3/css/layui.css" media="all">
    <link rel="stylesheet" href="../lib/jq-module/zyupload/zyupload-1.0.0.min.css" media="all">
    <link rel="stylesheet" href="../css/public.css" media="all">
    <style>
        .layui-form .layui-form-item .layui-input-block tip {
            display: inline-block;
            margin-top: 10px;
            line-height: 10px;
            font-size: 10px;
            color: #a29c9c;
        }
        .layui-form .layui-upload-img {
            width: 95px;
            height: 40px;
        }
        #area-picker .layui-input-block {margin-bottom: 15px;}
        body form {font-size: 100%;}
    </style>
</head>
<body>
<div class="layuimini-container">
    <div class="layuimini-main">
        
        <form class="layui-form" action="">
            <fieldset class="layui-elem-field layui-field-title" style="margin-top: 20px;">
                <legend>所属区域划分</legend>
            </fieldset>

            <div class="layui-row layui-col-space15">
                <div class="layui-col-md6">
                    <div class="layui-form-item" id="area-picker">
                        <label class="layui-form-label">位置选择</label>
                        <div class="layui-input-block">
                            <div class="layui-input-inline" style="width: 160px;">
                                <select name="province" class="province-selector" data-value="湖南省" lay-filter="province-1"><option value="">--选择省--</option><option value="北京市">北京市</option><option value="天津市">天津市</option><option value="河北省">河北省</option><option value="山西省">山西省</option><option value="内蒙古自治区">内蒙古自治区</option><option value="辽宁省">辽宁省</option><option value="吉林省">吉林省</option><option value="黑龙江省">黑龙江省</option><option value="上海市">上海市</option><option value="江苏省">江苏省</option><option value="浙江省">浙江省</option><option value="安徽省">安徽省</option><option value="福建省">福建省</option><option value="江西省">江西省</option><option value="山东省">山东省</option><option value="河南省">河南省</option><option value="湖北省">湖北省</option><option value="湖南省">湖南省</option><option value="广东省">广东省</option><option value="广西壮族自治区">广西壮族自治区</option><option value="海南省">海南省</option><option value="重庆市">重庆市</option><option value="四川省">四川省</option><option value="贵州省">贵州省</option><option value="云南省">云南省</option><option value="西藏自治区">西藏自治区</option><option value="陕西省">陕西省</option><option value="甘肃省">甘肃省</option><option value="青海省">青海省</option><option value="宁夏回族自治区">宁夏回族自治区</option><option value="新疆维吾尔自治区">新疆维吾尔自治区</option><option value="台湾省">台湾省</option><option value="香港特别行政区">香港特别行政区</option><option value="澳门特别行政区">澳门特别行政区</option><option value="海外">海外</option></select><div class="layui-unselect layui-form-select"><div class="layui-select-title"><input type="text" placeholder="--选择省--" value="广东省" readonly="" class="layui-input layui-unselect"><i class="layui-edge"></i></div><dl class="layui-anim layui-anim-upbit" style=""><dd lay-value="" class="layui-select-tips">--选择省--</dd><dd lay-value="北京市" class="">北京市</dd><dd lay-value="天津市" class="">天津市</dd><dd lay-value="河北省" class="">河北省</dd><dd lay-value="山西省" class="">山西省</dd><dd lay-value="内蒙古自治区" class="">内蒙古自治区</dd><dd lay-value="辽宁省" class="">辽宁省</dd><dd lay-value="吉林省" class="">吉林省</dd><dd lay-value="黑龙江省" class="">黑龙江省</dd><dd lay-value="上海市" class="">上海市</dd><dd lay-value="江苏省" class="">江苏省</dd><dd lay-value="浙江省" class="">浙江省</dd><dd lay-value="安徽省" class="">安徽省</dd><dd lay-value="福建省" class="">福建省</dd><dd lay-value="江西省" class="">江西省</dd><dd lay-value="山东省" class="">山东省</dd><dd lay-value="河南省" class="">河南省</dd><dd lay-value="湖北省" class="">湖北省</dd><dd lay-value="湖南省" class="">湖南省</dd><dd lay-value="广东省" class="layui-this">广东省</dd><dd lay-value="广西壮族自治区" class="">广西壮族自治区</dd><dd lay-value="海南省" class="">海南省</dd><dd lay-value="重庆市" class="">重庆市</dd><dd lay-value="四川省" class="">四川省</dd><dd lay-value="贵州省" class="">贵州省</dd><dd lay-value="云南省" class="">云南省</dd><dd lay-value="西藏自治区" class="">西藏自治区</dd><dd lay-value="陕西省" class="">陕西省</dd><dd lay-value="甘肃省" class="">甘肃省</dd><dd lay-value="青海省" class="">青海省</dd><dd lay-value="宁夏回族自治区" class="">宁夏回族自治区</dd><dd lay-value="新疆维吾尔自治区" class="">新疆维吾尔自治区</dd><dd lay-value="台湾省" class="">台湾省</dd><dd lay-value="香港特别行政区" class="">香港特别行政区</dd><dd lay-value="澳门特别行政区" class="">澳门特别行政区</dd><dd lay-value="海外" class="">海外</dd></dl></div>
                            </div>
                            <div class="layui-input-inline" style="width: 160px;">
                                <select name="city" class="city-selector" data-value="长沙市" lay-filter="city-1"><option value="">--选择市--</option><option value="广州市">广州市</option><option value="韶关市">韶关市</option><option value="深圳市">深圳市</option><option value="珠海市">珠海市</option><option value="汕头市">汕头市</option><option value="佛山市">佛山市</option><option value="江门市">江门市</option><option value="湛江市">湛江市</option><option value="茂名市">茂名市</option><option value="肇庆市">肇庆市</option><option value="惠州市">惠州市</option><option value="梅州市">梅州市</option><option value="汕尾市">汕尾市</option><option value="河源市">河源市</option><option value="阳江市">阳江市</option><option value="清远市">清远市</option><option value="东莞市">东莞市</option><option value="中山市">中山市</option><option value="潮州市">潮州市</option><option value="揭阳市">揭阳市</option><option value="云浮市">云浮市</option></select><div class="layui-unselect layui-form-select"><div class="layui-select-title"><input type="text" placeholder="--选择市--" value="深圳市" readonly="" class="layui-input layui-unselect"><i class="layui-edge"></i></div><dl class="layui-anim layui-anim-upbit" style=""><dd lay-value="" class="layui-select-tips">--选择市--</dd><dd lay-value="广州市" class="">广州市</dd><dd lay-value="韶关市" class="">韶关市</dd><dd lay-value="深圳市" class="layui-this">深圳市</dd><dd lay-value="珠海市" class="">珠海市</dd><dd lay-value="汕头市" class="">汕头市</dd><dd lay-value="佛山市" class="">佛山市</dd><dd lay-value="江门市" class="">江门市</dd><dd lay-value="湛江市" class="">湛江市</dd><dd lay-value="茂名市" class="">茂名市</dd><dd lay-value="肇庆市" class="">肇庆市</dd><dd lay-value="惠州市" class="">惠州市</dd><dd lay-value="梅州市" class="">梅州市</dd><dd lay-value="汕尾市" class="">汕尾市</dd><dd lay-value="河源市" class="">河源市</dd><dd lay-value="阳江市" class="">阳江市</dd><dd lay-value="清远市" class="">清远市</dd><dd lay-value="东莞市" class="">东莞市</dd><dd lay-value="中山市" class="">中山市</dd><dd lay-value="潮州市" class="">潮州市</dd><dd lay-value="揭阳市" class="">揭阳市</dd><dd lay-value="云浮市" class="">云浮市</dd></dl></div>
                            </div>
                            <div class="layui-input-inline" style="width: 160px;">
                                <select name="county" class="county-selector" data-value="天心区" lay-filter="county-1"><option value="">--选择区--</option><option value="罗湖区">罗湖区</option><option value="福田区">福田区</option><option value="南山区">南山区</option><option value="宝安区">宝安区</option><option value="龙岗区">龙岗区</option><option value="盐田区">盐田区</option><option value="龙华区">龙华区</option><option value="坪山区">坪山区</option></select><div class="layui-unselect layui-form-select"><div class="layui-select-title"><input type="text" placeholder="--选择区--" value="龙岗区" readonly="" class="layui-input layui-unselect"><i class="layui-edge"></i></div><dl class="layui-anim layui-anim-upbit" style=""><dd lay-value="" class="layui-select-tips">--选择区--</dd><dd lay-value="罗湖区" class="">罗湖区</dd><dd lay-value="福田区" class="">福田区</dd><dd lay-value="南山区" class="">南山区</dd><dd lay-value="宝安区" class="">宝安区</dd><dd lay-value="龙岗区" class="layui-this">龙岗区</dd><dd lay-value="盐田区" class="">盐田区</dd><dd lay-value="龙华区" class="">龙华区</dd><dd lay-value="坪山区" class="">坪山区</dd></dl></div>
                            </div>
                        </div>
                        <div class="layui-input-block">
                            <input type="text" name="" placeholder="请选择所属交警大队行政区划" autocomplete="off" class="layui-input" id="my-area">
                        </div>
                    </div>
                </div>
            </div>

            <fieldset class="layui-elem-field layui-field-title" style="margin-top: 20px;">
                <legend>区域内所有设备分布及其状态</legend>
            </fieldset>

            <div class="layui-row layui-col-space15">
                <div class="layui-col-md6">
                    <div id="map-device" style="width: 100%; height:270px; padding-top:5px;"></div>
                </div>
                <div class="layui-col-md6">
                    <table class="layui-hide" id="device-list" lay-filter="device-list-filter"></table>
                    <script type="text/html" id="device-list-bar">
                        <a class="layui-btn layui-btn-normal layui-btn-xs data-count-edit" lay-event="edit">详情</a>
                    </script>
                </div>
            </div>
        </form>
    </div>
</div>

<script src="../lib/layui-v2.6.3/layui.js" charset="utf-8"></script>
<script src="../js/lay-config.js?v=1.0.4" charset="utf-8"></script>
<script charset="utf-8" src="https://map.qq.com/api/gljs?v=1.exp&key=DXPBZ-ZQDLX-IWF4F-TL55C-Q37ZQ-66B3G"></script>
<script charset="utf-8" src="https://map.qq.com/api/js?v=2.exp&key=DXPBZ-ZQDLX-IWF4F-TL55C-Q37ZQ-66B3G"></script>
<script>
    var center, map;
    var geocoder = new qq.maps.Geocoder();
    // 地图初始化函数，本例取名为init，开发者可根据实际情况定义
    (function initMap() {
        // 定义地图中心点坐标
        center = new TMap.LatLng(28.228207, 112.938872);
        // 定义map变量，调用 TMap.Map() 构造函数创建地图
        map = new TMap.Map(document.getElementById('map-device'), {
            center: center,// 设置地图中心点坐标
            zoom: 17.2,   // 设置地图缩放级别
        });
    })();

    var comps = ['form', 'element', 'layarea', 'tableSelect', 'table'];
    layui.use(comps, function () {
        var form = layui.form,
            layer = layui.layer,
            $ = layui.$,
            element = layui.element,
            layarea = layui.layarea,
            tableSelect = layui.tableSelect,
            table = layui.table;

        layarea.render({
            elem: '#area-picker',
            data: {
                province: '湖南省',
                city: '长沙市',
                county: '天心区',
            },
            change: function (res) {
                //选择结果
                console.log(res);
            }
        });

        /**
         * 所属交警大队、路口位置的下拉选取
         **/
        tableSelect.render({
            elem: '#my-area',	// 定义输入框input对象 必填
            checkedKey: 'id', // 表格的唯一建值，非常重要，影响到选中状态 必填
            searchKey: 'keyword',	// 搜索输入框的name值 默认keyword
            searchPlaceholder: '关键词搜索',	// 搜索输入框的提示文字 默认关键词搜索
            height: '350',  // 自定义高度
            width: '350',  // 自定义宽度
            table: {	// 定义表格参数，与LAYUI的TABLE模块一致，只是无需再定义表格elem
                url: '../api/areaSelect.json',
                cols: [[
                    { type: 'radio' },
                    { field: 'id', title: '编号' },
                    { field: 'username', title: '交警大队' },
                    { field: 'addr', title: '地址' }
                ]]
            },
            done: function (elem, data) {
                // 选择完后的回调，包含2个返回值 elem:返回之前input对象；data:表格返回的选中的数据 []
                // 拿到data[]后 就按照业务需求做想做的事情啦~比如加个隐藏域放ID...
                var NEWJSON = []
                layui.each(data.data, function (index, item) {
                    NEWJSON.push(item.username)
                })
                elem.val(NEWJSON.join(","))
            }
        });

        table.render({
            elem: '#device-list',
            url: '../api/device.json',
            defaultToolbar: ['filter', 'exports', 'print', {
                title: '提示',
                layEvent: 'LAYTABLE_TIPS',
                icon: 'layui-icon-tips'
            }],
            cols: [[
                {field: 'id', minWidth: 90, title: '设备编号'},
                {field: 'addr', minWidth: 150, title: '名称', align:'center'},
                {field: 'affiliation', minWidth: 120, title: '单位名称'},
                {field: 'ip', minWidth: 75, title: '设备IP'},
                {field: 'type', minWidth: 90, title: '设备类型'},
                {field: 'status', minWidth: 60, title: '状态'},
                {title: '操作', minWidth: 60, toolbar: '#device-list-bar', align: "center"}
            ]],
            limits: [10, 15, 20, 25, 50, 100],
            limit: 10,
            page: true,
            skin: 'line',
            done: function (response) {
                poss = []
                loc = [[28.14284,112.970843], [28.157409,113.057894], [28.149284,112.973392], [28.127942,113.006524], [28.121413,112.968986]]
                for (let i=0, len=response.data.length; i<len; i++) {
                    // addrs.push(response.data[i].addr);
                    let addr = response.data[i].addr;
                    poss.push(addr);
                    // getLal(addr, function(res) {
                    //     console.log(res);
                    // });
                    // $.ajax({
                    //     url: 'https://apis.map.qq.com/ws/geocoder/v1',
                    //     type: 'get',
                    //     dataType: "jsonp",
                    //     data: {
                    //         key: 'DXPBZ-ZQDLX-IWF4F-TL55C-Q37ZQ-66B3G',
                    //         address: addr,
                    //         output: 'jsonp',
                    //     },
                    //     success: function(res) {
                    //         if (res.status === 0) {
                    //             var location = res.result.location;
                    //             poss.push([addr, location])
                    //         } else {
                    //             alert('请检查地址');
                    //         }
                    //     },
                    //     error: function(e) {
                    //         alert('请检查地址或网络');
                    //     }
                    // });
                }
                setMyMap([poss, loc]);
            }
        });

        function getLal(address, cb) {
            geocoder.getLocation(address);
            geocoder.setComplete(function(res) {
                cb(res)
            });
            geocoder.setError(function(err) {
                cb(err)
            });
        }

        function setMyMap(data) {
            var markerArr = []
            console.log(data);
            for (let i=0, len = data[0].length; i<len; i++) {
                markerArr.push({
                    "id": 'marker'+i,
                    "styleId": 'marker',
                    "position": new TMap.LatLng(data[1][i][0], data[1][i][1]),
                    "properties": {
                        "title": data[0][i]
                    }
                })
            }
            var center = new TMap.LatLng(data[1][4][0],data[1][4][1]);
            map.setCenter(center);
            //初始化marker
            var marker = new TMap.MultiMarker({
                id: 'marker-layer',
                map: map,
                styles: {
                    "marker": new TMap.MarkerStyle({
                        "width": 25,
                        "height": 35,
                        "anchor": { x: 16, y: 32 }
                    })
                },
                geometries: markerArr
            });
            //初始化
            var bounds = new TMap.LatLngBounds();

            //设置自适应显示marker
            (function showMarker() {
                //判断标注点是否在范围内
                markerArr.forEach(function (item) {
                    //若坐标点不在范围内，扩大bounds范围
                    if (bounds.isEmpty() || !bounds.contains(item.position)) {
                        bounds.extend(item.position);
                    }
                })
                //设置地图可视范围
                map.fitBounds(bounds, {
                    padding: 100 // 自适应边距
                });
            })();
        }
    });
</script>

</body>
</html>